1. Field of the Invention
The present invention relates to a printing system for performing rendering by transmitting rendering data in units of pages from a printer driver of a host computer to a printer and by converting the rendering data to intermediate data in units of bands in the printer.
2. Description of the Related Art
In this type of printing system, a printer driver installed in a storage device of a data processing apparatus converts rendering data generated by an application to rendering data which can be interpreted by a printer and transmits the converted rendering data to the printer upon receiving a print request. In this case, the rendering data transmitted from the printer driver to the printer is called PDL (page description language) data, which is described in units of pages.
The printer converts the rendering data of each page into intermediate data in units of bands. After generating intermediate data of one page, the printer renders the intermediate data in order from the top band so as to generate image data, and compresses and holds the image data. After the data of all bands, that is, the data of one page, has been rendered and compressed, the compressed image data is decompressed in synchronization with a printing process, so that print image data is created.
The main reason of rendering and compressing the data in units of bands is that very large sequential memory is required for holding uncompressed image data of an entire page.
In a printer, three processes executed in a printer controller: a process of generating intermediate data; a process of rendering and compressing the data; and a process of decompressing and printing the data, are generally performed in parallel. Accordingly, data of a plurality of pages is accumulated in respective memory areas for the intermediate data and the compressed image data.
When such a system is applied to a general electrophotographic apparatus, such as a laser beam printer (LBP), copying for making copies of each page or reprinting (recovery) after paper jam is performed by using compressed image data, so that the compressed image data is held until the corresponding page has been printed. However, intermediate data is released in units of bands after being rendered (for example, see Japanese Patent Laid-Open No. 10-147017).
Generally, rendered full-color image data is converted to C, M, Y, and K planes, halftone processing is performed thereon in accordance with the tone of the electrophotographic apparatus, and then the image data is compressed. Accordingly, the compression rate of the image data increases, so that the image data can be efficiently decompressed at printing.
A system of starting printing after rendering all bands of a page is suitable for a full-color electrophotographic apparatus of a tandem system including four developing mechanisms for CMYK and a high-speed monochrome electrophotographic apparatus.
In a medium/low-speed monochrome electrophotographic apparatus or a non-tandem full-color electrophotographic apparatus having only one developing mechanism, a method of performing rendering in synchronization with a printing process has been traditionally used.
Japanese Patent Laid-Open No. 2003-216361 discloses another printing system in which a printer driver installed in a host computer spools rendering commands of one page from an application and sorts the rendering commands in units of bands according to the printing start direction of a printer. Accordingly, rendering data is generated not in units of pages but in units of bands, and the rendering data is transmitted to the printer.
In this system, the printer can render a band of rendering data upon receiving it from the host computer. Further, intermediate data of the band is released after being rendered. Therefore, a memory for intermediate data is less likely to be cluttered up and rendering in the printer can be quickly performed compared to a printing system which generates rendering data in units of pages.
However, the printer driver has to generate rendering data in units of bands based on rendering commands which are output from an application in an arbitrary order (irrelevant to the printing order in the printer). Therefore, the following problems arise: rendering commands must be sorted by considering the printing direction in the printer, which takes time; a rendered object which covers a plurality of bands must be divided into segments, so that processing time for generating the rendered object increases; and, if a rendered object cannot be divided into a plurality of bands, rendering data must be generated for each band, so that the amount of data of a print job increases.
For example, assume that a rendering command output from an application is a JPEG image object. In this case, in order to divide the image object by the printer driver in accordance with a plurality of bands, the image object of a JPEG format must be decompressed. Also, the divided image object must be transmitted to a print job and the image object cannot be re-converted to a JPEG format. Therefore, the data size of the print job increases. In a case of a general figure object, the figure object must be converted to a scan object in order to divide it. Therefore, the data size of the print job increases if header specification is performed to each scan object. Since the data size of a scan object is proportional to resolution, this is not suitable for a printing system of high resolution, such as 1200 DPI or 2400 DPI. Further, in a case of a character object, which cannot be divided, characters must be rendered in each band.
In the above-described printing system according to Japanese Patent Laid-Open No. 10-147017, when printing is started after all bands of a page have been rendered by memory deadlock of the printer, the timing of starting a printing operation is late compared to a band rendering method in which rendering is performed in synchronization with printing (first problem).
The capacity of memory for storing intermediate data (intermediate buffer, which will be described later) is limited, whereas the amount of intermediate data forming a page varies depending on the number, type, and size of rendered objects forming rendering data transmitted from the printer driver of a data processing apparatus and on the rendering position.
For example, when the size of intermediate data forming a page is large, a user may have to wait until the bands of previous pages are rendered and the memory for the intermediate data is released.
Further, when the size of intermediate data forming a page is very large, the available memory space for the intermediate data may be insufficient even if all bands of the previous pages have been rendered. In that case, one or more bands of a page for which intermediate data is being generated must be rendered in order to free enough memory for the intermediate data. At this time, if CMYK conversion or half-tone processing is performed on the rendered image data, the image data may not be adequately rendered depending on the rendering logic of rendering data thereafter.
Therefore, rendered image data should be ideally held in a form of an RGB image. However, the RGB image requires a very large memory and thus the image data is typically compressed according to a JPEG standard or the like. Even in a compressed form, the image data requires a large memory compared to a half-tone processed CMYK image. Further, image quality is degraded due to JPEG compression and processing speed decreases (second problem).
When band sorting is performed in order to generate a print job divided into bands in the printer driver of the host computer so that memory deadlock does not occur in the printer, as in Japanese Patent Laid-Open No. 2003-216361, generation of the print job delays due to increased processing load of the printer driver and first printout delays. Further, the amount of print data may increase by dividing data into bands. Therefore, even if band rendering can be performed in the printer, communication loads of a network increase disadvantageously (third problem).